// const sm = Symbol();
// console.log(typeof sm)
// const genericSymbol = Symbol();
// const otherGenericSymbol = Symbol();
// const fooSymbol = Symbol("foo");
// const otherFooSymbol = Symbol("foo");
// console.log(genericSymbol === otherFooSymbol);
// console.log(fooSymbol === otherFooSymbol)
// console.log(typeof Object(sm))
// let symbolFor = Symbol.for("foo")
// let symbolFor1 = Symbol.for("foo")
// console.log(symbolFor === symbolFor1)
// console.log(Symbol.keyFor(symbolFor1))


let symbolFor = Symbol.for("foo")
const o = {};
o[symbolFor] = "will"
const getAllSymbols = Object.getOwnPropertySymbols(o)
// Object.defineProperties()
// Object.defineProperty()
console.log(Object.getOwnPropertyNames(o))
console.log(Object.prototype.toString.call(Object.getOwnPropertyDescriptors(o)))
// for(const item of getAllSymbols) {
//   console.log(o[item])
// }

console.log(Reflect.ownKeys(o))